﻿using mozhi.smarterp.BasicData.Enums;
using System;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;

namespace mozhi.smarterp.BasicData.NumberRules
{
    public interface IDocumentNumberRuleAppService : IApplicationService
    {
        Task<DocumentNumberRuleDto> GetAsync(Guid id);

        Task<DocumentNumberRuleDto> CreateAsync(DocumentNumberRuleCreateDto input);

        Task<DocumentNumberRuleDto> UpdateAsync(DocumentNumberRuleUpdateDto input);

        Task<PagedResultDto<DocumentNumberRuleDto>> GetListAsync(PagedAndSortedResultRequestDto filter);

        Task DeleteAsync(Guid id);

        Task<DocumentNumberGenerateDto> GenerateNumberAsync(DocumentType type, string currentNumber);
    }
}
